/*****************************************************************************

File:   EdgeDescsSurfaceRev.java

Date          Build     Author        Version    Comments
27-Dec-12    P-20-20    dshah          $$1        Created

****************************************************************************/
package com.ptc.otkjavaexamples;
import com.ptc.pfc.pfcGeometry.*;
import com.ptc.cipjava.*;
import com.ptc.pfc.pfcSession.*;
import com.ptc.pfc.pfcCommand.*;
import com.ptc.pfc.pfcGlobal.*;
import com.ptc.pfc.pfcModel.*;
import com.ptc.pfc.pfcModelItem.*;
import com.ptc.pfc.pfcFeature.*;
import com.ptc.pfc.pfcSolid.*;
import java.io.*;

import com.ptc.pfc.pfcFamily.*;
import com.ptc.pfc.pfcServer.*;
import com.ptc.pfc.pfcWindow.*;
import com.ptc.wfc.wfcSolid.*;
import com.ptc.pfc.pfcBase.*;
import com.ptc.wfc.wfcModel.*;
import com.ptc.wfc.wfcGeometry.*;
import com.ptc.wfc.wfcSolid.*;
import com.ptc.wfc.wfcPart.*;
import com.ptc.pfc.pfcPart.*;
import com.ptc.pfc.pfcDimension.*;
import com.ptc.pfc.pfcAssembly.*;
import com.ptc.pfc.pfcSelect.*;
import com.ptc.pfc.pfcUnits.*;
import com.ptc.pfc.pfcObject.*;
import com.ptc.pfc.pfcUI.*;
import com.ptc.pfc.pfcRelations.*;
import com.ptc.pfc.pfcDetail.*;
import com.ptc.pfc.pfcDrawing.*;
import com.ptc.pfc.pfcView.*;
import com.ptc.pfc.pfcView2D.*;
import com.ptc.pfc.pfcModel2D.*;

class EdgeDescsSurfaceRev
{

	public EdgeDescsSurfaceRev()
	{
	}

	public static EdgeDescriptors OtkUtilEdgeDescriptorCreate()
	{
		try
		{
		EdgeDescriptors wEdgeDescs = EdgeDescriptors.create();
		UVParamsSequence  wUVParamSequence1_1 = UVParamsSequence.create();
		otkCreateIntfDataUtils.CreatePfcUVParamsSeqArr(14, 214.54228506197404, 442.3471841095976, wUVParamSequence1_1);
		EdgeSurfaceData  wEdgeSurfaceData1_1 = wfcGeometry.EdgeSurfaceData_Create(-1, EdgeDirection.EDGE_NO_FLIP, wUVParamSequence1_1, null);



		UVParamsSequence  wUVParamSequence2_1 = UVParamsSequence.create();
		// type : CURVE_LINE
		Point3D  WED2Point11 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 1.0 , 0.0 );
		Point3D  WED2Point21 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 0.0 , 0.0 );
		LineDescriptor  WED2LineDesc1 = pfcGeometry.LineDescriptor_Create(WED2Point11, WED2Point21);
		CurveDescriptor  WED2CurveDesc1 = (CurveDescriptor)(WED2LineDesc1); 

		EdgeSurfaceData  wEdgeSurfaceData2_1 = wfcGeometry.EdgeSurfaceData_Create(49, EdgeDirection.EDGE_FLIP, wUVParamSequence2_1, WED2CurveDesc1);


		// Curve Descriptor in Edge Descriptor 
		// type : CURVE_SPLINE
		SplinePoints  WECSplPoints1 = SplinePoints.create();
		Point3D  WECPoint1_1 = otkCreateIntfDataUtils.CreatePfcPoint3D( 226.2445915199 , -181.38575009785092 , 0.0);
		Vector3D  WECVector1_1 = otkCreateIntfDataUtils.CreatePfcVector3D( -247.71629636010903 , 421.5982201816065 , 0.0);
		otkCreateIntfDataUtils.CreatePfcSplinePoints((double)0.0, WECPoint1_1, WECVector1_1, WECSplPoints1);
		Point3D  WECPoint1_2 = otkCreateIntfDataUtils.CreatePfcPoint3D( 200.499517312463 , -43.298533894325686 , 0.0);
		Vector3D  WECVector1_2 = otkCreateIntfDataUtils.CreatePfcVector3D( 46.14197295359715 , 419.0716294344087 , 0.0);
		otkCreateIntfDataUtils.CreatePfcSplinePoints((double)0.32881140402853537, WECPoint1_2, WECVector1_2, WECSplPoints1);
		Point3D  WECPoint1_3 = otkCreateIntfDataUtils.CreatePfcPoint3D( 229.3652065753469 , 110.3917575864341 , 0.0);
		Vector3D  WECVector1_3 = otkCreateIntfDataUtils.CreatePfcVector3D( 55.82331741547671 , 421.5693120497788 , 0.0);
		otkCreateIntfDataUtils.CreatePfcSplinePoints((double)0.6948677328307694, WECPoint1_3, WECVector1_3, WECSplPoints1);
		Point3D  WECPoint1_4 = otkCreateIntfDataUtils.CreatePfcPoint3D( 214.54228506197407 , 239.89728238748017 , 0.0);
		Vector3D  WECVector1_4 = otkCreateIntfDataUtils.CreatePfcVector3D( -191.71513782243747 , 427.9270738880992 , 0.0);
		otkCreateIntfDataUtils.CreatePfcSplinePoints((double)1.0, WECPoint1_4, WECVector1_4, WECSplPoints1);
		SplineDescriptor  WECsplineDesc1 = pfcGeometry.SplineDescriptor_Create(WECSplPoints1);
		CurveDescriptor  WECCurveDesc1 = (CurveDescriptor)(WECsplineDesc1);

		EdgeDescriptor wEdgeDesc1 = wfcGeometry.EdgeDescriptor_Create(44, wEdgeSurfaceData1_1, wEdgeSurfaceData2_1, WECCurveDesc1);
		wEdgeDescs.append(wEdgeDesc1);

		UVParamsSequence  wUVParamSequence1_2 = UVParamsSequence.create();
		otkCreateIntfDataUtils.CreatePfcUVParamsSeqArr(14, 214.54228506197404, 442.3471841095976, wUVParamSequence1_2);
		EdgeSurfaceData  wEdgeSurfaceData1_2 = wfcGeometry.EdgeSurfaceData_Create(-1, EdgeDirection.EDGE_FLIP, wUVParamSequence1_2, null);



		UVParamsSequence  wUVParamSequence2_2 = UVParamsSequence.create();
		// type : CURVE_LINE
		Point3D  WED2Point12 = otkCreateIntfDataUtils.CreatePfcPoint3D( -2.6179938779914944 , 1.0 , 0.0 );
		Point3D  WED2Point22 = otkCreateIntfDataUtils.CreatePfcPoint3D( -2.6179938779914944 , 0.0 , 0.0 );
		LineDescriptor  WED2LineDesc2 = pfcGeometry.LineDescriptor_Create(WED2Point12, WED2Point22);
		CurveDescriptor  WED2CurveDesc2 = (CurveDescriptor)(WED2LineDesc2); 

		EdgeSurfaceData  wEdgeSurfaceData2_2 = wfcGeometry.EdgeSurfaceData_Create(49, EdgeDirection.EDGE_NO_FLIP, wUVParamSequence2_2, WED2CurveDesc2);


		// Curve Descriptor in Edge Descriptor 
		// type : CURVE_SPLINE
		SplinePoints  WECSplPoints2 = SplinePoints.create();
		Point3D  WECPoint2_1 = otkCreateIntfDataUtils.CreatePfcPoint3D( -195.93356372506682 , -181.3857500978509 , 113.12229575994999);
		Vector3D  WECVector2_1 = otkCreateIntfDataUtils.CreatePfcVector3D( 214.5286055792492 , 421.5982201816065 , -123.85814818005451);
		otkCreateIntfDataUtils.CreatePfcSplinePoints((double)0.0, WECPoint2_1, WECVector2_1, WECSplPoints2);
		Point3D  WECPoint2_2 = otkCreateIntfDataUtils.CreatePfcPoint3D( -173.63767543911084 , -43.298533894325686 , 100.24975865623149);
		Vector3D  WECVector2_2 = otkCreateIntfDataUtils.CreatePfcVector3D( -39.96012075854955 , 419.0716294344087 , 23.070986476798478);
		otkCreateIntfDataUtils.CreatePfcSplinePoints((double)0.32881140402853537, WECPoint2_2, WECVector2_2, WECSplPoints2);
		Point3D  WECPoint2_3 = otkCreateIntfDataUtils.CreatePfcPoint3D( -198.63609563851594 , 110.3917575864341 , 114.68260328767342);
		Vector3D  WECVector2_3 = otkCreateIntfDataUtils.CreatePfcVector3D( -48.34441100532504 , 421.5693120497788 , 27.911658707738415);
		otkCreateIntfDataUtils.CreatePfcSplinePoints((double)0.6948677328307694, WECPoint2_3, WECVector2_3, WECSplPoints2);
		Point3D  WECPoint2_4 = otkCreateIntfDataUtils.CreatePfcPoint3D( -185.79906904963218 , 239.89728238748017 , 107.271142530987);
		Vector3D  WECVector2_4 = otkCreateIntfDataUtils.CreatePfcVector3D( 166.0301796442658 , 427.9270738880992 , -95.85756891121873);
		otkCreateIntfDataUtils.CreatePfcSplinePoints((double)1.0, WECPoint2_4, WECVector2_4, WECSplPoints2);
		SplineDescriptor  WECsplineDesc2 = pfcGeometry.SplineDescriptor_Create(WECSplPoints2);
		CurveDescriptor  WECCurveDesc2 = (CurveDescriptor)(WECsplineDesc2);

		EdgeDescriptor wEdgeDesc2 = wfcGeometry.EdgeDescriptor_Create(47, wEdgeSurfaceData1_2, wEdgeSurfaceData2_2, WECCurveDesc2);
		wEdgeDescs.append(wEdgeDesc2);

		UVParamsSequence  wUVParamSequence1_3 = UVParamsSequence.create();
		otkCreateIntfDataUtils.CreatePfcUVParamsSeqArr(21, -2.6179938779914944, 1.0, wUVParamSequence1_3);
		// type : CURVE_LINE
		Point3D  WED1Point13 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 1.0 , 0.0 );
		Point3D  WED1Point23 = otkCreateIntfDataUtils.CreatePfcPoint3D( -2.6179938779914944 , 1.0 , 0.0 );
		LineDescriptor  WED1LineDesc3 = pfcGeometry.LineDescriptor_Create(WED1Point13, WED1Point23);
		CurveDescriptor  WED1CurveDesc3 = (CurveDescriptor)(WED1LineDesc3); 

		EdgeSurfaceData  wEdgeSurfaceData1_3 = wfcGeometry.EdgeSurfaceData_Create(49, EdgeDirection.EDGE_NO_FLIP, wUVParamSequence1_3, WED1CurveDesc3);


		UVParamsSequence  wUVParamSequence2_3 = UVParamsSequence.create();
		EdgeSurfaceData  wEdgeSurfaceData2_3 = wfcGeometry.EdgeSurfaceData_Create(-1, EdgeDirection.EDGE_FLIP, wUVParamSequence2_3, null);



		// Curve Descriptor in Edge Descriptor 
		// type : CURVE_ARC
		Vector3D  WECArcVector13 = otkCreateIntfDataUtils.CreatePfcVector3D( 1.0 , 0.0 , 0.0 );
		Vector3D  WECArcVector23 = otkCreateIntfDataUtils.CreatePfcVector3D( 0.0 , 0.0 , 1.0 );
		Point3D  WECArcPoint3 = otkCreateIntfDataUtils.CreatePfcPoint3D( -1.110667391341374E-14 , -181.3857500978509 , 0.0 );
		ArcDescriptor  WECArcDesc3 = pfcGeometry.ArcDescriptor_Create(WECArcVector13, WECArcVector23, WECArcPoint3,0.0, 2.6179938779914944, 226.2445915199 );
		CurveDescriptor  WECCurveDesc3 = (CurveDescriptor)(WECArcDesc3);

		EdgeDescriptor wEdgeDesc3 = wfcGeometry.EdgeDescriptor_Create(50, wEdgeSurfaceData1_3, wEdgeSurfaceData2_3, WECCurveDesc3);
		wEdgeDescs.append(wEdgeDesc3);

		UVParamsSequence  wUVParamSequence1_4 = UVParamsSequence.create();
		otkCreateIntfDataUtils.CreatePfcUVParamsSeqArr(20, -2.6179938779914944, -7723.522262230995, wUVParamSequence1_4);
		EdgeSurfaceData  wEdgeSurfaceData1_4 = wfcGeometry.EdgeSurfaceData_Create(-1, EdgeDirection.EDGE_NO_FLIP, wUVParamSequence1_4, null);



		UVParamsSequence  wUVParamSequence2_4 = UVParamsSequence.create();
		// type : CURVE_LINE
		Point3D  WED2Point14 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 0.0 , 0.0 );
		Point3D  WED2Point24 = otkCreateIntfDataUtils.CreatePfcPoint3D( -2.6179938779914944 , 0.0 , 0.0 );
		LineDescriptor  WED2LineDesc4 = pfcGeometry.LineDescriptor_Create(WED2Point14, WED2Point24);
		CurveDescriptor  WED2CurveDesc4 = (CurveDescriptor)(WED2LineDesc4); 

		EdgeSurfaceData  wEdgeSurfaceData2_4 = wfcGeometry.EdgeSurfaceData_Create(49, EdgeDirection.EDGE_FLIP, wUVParamSequence2_4, WED2CurveDesc4);


		// Curve Descriptor in Edge Descriptor 
		// type : CURVE_ARC
		Vector3D  WECArcVector14 = otkCreateIntfDataUtils.CreatePfcVector3D( 1.0 , 0.0 , 0.0 );
		Vector3D  WECArcVector24 = otkCreateIntfDataUtils.CreatePfcVector3D( 0.0 , 0.0 , 1.0 );
		Point3D  WECArcPoint4 = otkCreateIntfDataUtils.CreatePfcPoint3D( 1.4689471949998896E-14 , 239.89728238748103 , 0.0 );
		ArcDescriptor  WECArcDesc4 = pfcGeometry.ArcDescriptor_Create(WECArcVector14, WECArcVector24, WECArcPoint4,0.0, 2.6179938779914944, 214.542285061974 );
		CurveDescriptor  WECCurveDesc4 = (CurveDescriptor)(WECArcDesc4);

		EdgeDescriptor wEdgeDesc4 = wfcGeometry.EdgeDescriptor_Create(52, wEdgeSurfaceData1_4, wEdgeSurfaceData2_4, WECCurveDesc4);
		wEdgeDescs.append(wEdgeDesc4);

		return(wEdgeDescs);
		}
		catch (Exception e)
		{
		System.out.println(e);
		}
		return null;
	}
};
